// eztrade-server/src/router.rs

use crate::handler::{jsonrpc::jsonrpc_handler, root::get_root, webtransport::connect};
use crate::middleware::validation::WebTransportSpan;
use salvo::prelude::*;

// 创建并配置主路由器
pub fn build_router() -> Router {
    let router = Router::new()
        .push(Router::with_path("/").get(get_root)) // 为根路径添加 GET 方法的路由
        // 为 /call 路径添加 POST 方法的路由，由 jsonrpc_handler 处理
        .push(Router::with_path("call").post(jsonrpc_handler))
        .push(
            Router::with_path("wt/{id}")
                .hoop(WebTransportSpan)
                .goal(connect)
        ) // 添加 WebTransport连接处理并应用日志中间件
        ;
    router
}
